News All Tests
Current file: /home/estudydev/workspace/MSP09/web/news/tests/class.Course.inc.php
Legend: executed not executed dead code

  Coverage
  Classes Methods Lines
Total
100.00 %100.00%
100.00% 1 / 1
0.00 %0.00%
0.00% 0 / 20
1.85 %1.85%
1.85% 7 / 379
 
Course
100.00 %100.00%
100.00% 1 / 1
0.00 %0.00%
0.00% 0 / 20
0.27 %0.27%
0.27% 1 / 373
 public function Course()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 1
 public static function changeToEcom($courseID, $newModerator)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 17
 public function createCourse($name, $shortName, $modulShortCut, $dozentID, $mni = false)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 75
 public function deleteCourse($courseid)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 21
 public function archiveCourse($courseID)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 48
 public function reactivateCourse($courseID)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 19
 public function addParticipant($userid, $courseid, $differentUsergroup = 0)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 22
 public function getParticipants($courseid, $roles = 'all', $orderBy = 'user.Nachname', $orderDir = 'ASC')
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 34
 public function getPossibleAssistents($courseID)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 7
 public function getRole($userid, $courseid)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 32
 public function setAsAssistent($userid, $courseid)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 19
 public function unsetAsAssistent($userid, $courseid)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 17
 public function unsetAsTeacher($userid, $courseid)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 17
 public function removeParticipant($userid, $courseid)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 4
 public function getSemesterType($semester)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 1
 public function getSemesterYear($semester)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 7
 public function semesterDBtoString($semester)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 18
 public function semesterStringToDB($semester)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 3
 public static function getCheckOutNotice($id)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 4
 public static function setCheckOutNotice($value)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 6


       1                 : <?php                                                                                                                                                                                                                                                                                   
       2                 : /*--------------------------------------------------------------------------+                                                                                                                                                                                                           
       3                 : This file is part of eStudy.                                                                                                                                                                                                                                                            
       4                 : courses/classes/class.Course.inc.php                                                                                                                                                                                                                                                    
       5                 : - Modulgruppe:  Veranstaltungen                                                                                                                                                                                                                                                         
       6                 : - Beschreibung: Methoden zum Administrieren von Veranstaltungen.                                                                                                                                                                                                                        
       7                 : - Version:      0.4.1, 12/01/06                                                                                                                                                                                                                                                         
       8                 : - Autor(en):    Timo Fuchs <timo.fuchs@mni.fh-giessen.de>                                                                                                                                                                                                                               
       9                 :                 Steffen Woersdoerfer <steffen.woersdoerfer@mni.fh-giessen.de>                                                                                                                                                                                                           
      10                 :                 Steffen Eller <steffen.eller@mni.fh-giessen.de>                                                                                                                                                                                                                         
      11                 : +---------------------------------------------------------------------------+                                                                                                                                                                                                           
      12                 : This program is free software; you can redistribute it and/or                                                                                                                                                                                                                           
      13                 : modify it under the terms of the GNU General Public License                                                                                                                                                                                                                             
      14                 : as published by the Free Software Foundation; either version 2                                                                                                                                                                                                                          
      15                 : of the License, or any later version.                                                                                                                                                                                                                                                   
      16                 : +---------------------------------------------------------------------------+                                                                                                                                                                                                           
      17                 : This program is distributed in the hope that it will be useful,                                                                                                                                                                                                                         
      18                 : but WITHOUT ANY WARRANTY; without even the implied warranty of                                                                                                                                                                                                                          
      19                 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                                                                                                                                                                                                           
      20                 : GNU General Public License for more details.                                                                                                                                                                                                                                            
      21                 : You should have received a copy of the GNU General Public License                                                                                                                                                                                                                       
      22                 : along with this program; if not, write to the Free Software                                                                                                                                                                                                                             
      23                 : Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.                                                                                                                                                                                                             
      24                 : +--------------------------------------------------------------------------*/                                                                                                                                                                                                           
      25                 :                                                                                                                                                                                                                                                                                         
      26                 :                                                                                                                                                                                                                                                                                         
      27                 : /**                                                                                                                                                                                                                                                                                     
      28                 :  * In dieser Datei wird die Klasse Course implementiert.                                                                                                                                                                                                                                
      29                 :  * @package eStudy.Courses                                                                                                                                                                                                                                                              
      30                 :  * @version 0.4.1, 12/01/06                                                                                                                                                                                                                                                             
      31                 :  * @author Timo Fuchs <timo.fuchs@mni.fh-giessen.de>                                                                                                                                                                                                                                    
      32                 :  * @author Steffen Woersdoerfer <steffen.woersdoerfer@mni.fh-giessen.de>                                                                                                                                                                                                                
      33                 :  * @author Steffen Eller <steffen.eller@mni.fh-giessen.de>                                                                                                                                                                                                                              
      34                 :  */                                                                                                                                                                                                                                                                                     
      35                 :                                                                                                                                                                                                                                                                                         
      36                 :                                                                                                                                                                                                                                                                                         
      37                 : /** Teilnehmerobjekte*/                                                                                                                                                                                                                                                                 
      38               1 : require_once("class.participant.inc.php");                                                                                                                                                                                                                                              
      39                 : /** Veranstaltungseinstellungen*/                                                                                                                                                                                                                                                       
      40               1 : require_once("class.Settings.inc.php");                                                                                                                                                                                                                                                 
      41                 : /** Hilfsfunktionen zur Veranstaltungslogistik */                                                                                                                                                                                                                                       
      42               1 : require_once("class.CourseUtil.inc.php");                                                                                                                                                                                                                                               
      43                 : /** estudy-Course */                                                                                                                                                                                                                                                                    
      44               1 : require_once("class.estudycourse.inc.php");                                                                                                                                                                                                                                             
      45                 : /** User */                                                                                                                                                                                                                                                                             
      46               1 : require_once("class.user.inc.php");                                                                                                                                                                                                                                                     
      47                 : /** Kurse aus XML-Import*/                                                                                                                                                                                                                                                              
      48               1 : require_once ("class.XmlImport.inc.php");                                                                                                                                                                                                                                               
      49                 :                                                                                                                                                                                                                                                                                         
      50                 : /** Methodensammlung zum Anlegen und Loeschen von Veranstaltungen sowie Benutzerverwaltung innerhalb der Veranstaltungen.                                                                                                                                                               
      51                 :  *                                                                                                                                                                                                                                                                                      
      52                 :  *  @package  eStudy.Courses                                                                                                                                                                                                                                                            
      53                 :  *  @author   Timo Fuchs <timo.fuchs@mni.fh-giessen.de>                                                                                                                                                                                                                                 
      54                 :  *  @author   Steffen Woersdoerfer <steffen.woersdoerfer@mni.fh-giessen.de>                                                                                                                                                                                                             
      55                 :  *  @author   Steffen Eller <steffen.eller@mni.fh-giessen.de>                                                                                                                                                                                                                           
      56                 :  *  @version  0.5, 12/01/06                                                                                                                                                                                                                                                             
      57                 :  */                                                                                                                                                                                                                                                                                     
      58               1 : class Course {                                                                                                                                                                                                                                                                          
      59                 :                                                                                                                                                                                                                                                                                         
      60                 :     /**                                                                                                                                                                                                                                                                                 
      61                 :      * Standard-Konstruktor.                                                                                                                                                                                                                                                            
      62                 :      * @access public                                                                                                                                                                                                                                                                   
      63                 :      * @return void                                                                                                                                                                                                                                                                     
      64                 :      */                                                                                                                                                                                                                                                                                 
      65               0 :     function Course() {}                                                                                                                                                                                                                                                                
      66                 :                                                                                                                                                                                                                                                                                         
      67                 :     public static function changeToEcom($courseID, $newModerator) {                                                                                                                                                                                                                     
      68               0 :         global $db, $EZSQL_ERROR;                                                                                                                                                                                                                                                       
      69                 :                                                                                                                                                                                                                                                                                         
      70               0 :         $courseID = (int)$courseID;                                                                                                                                                                                                                                                     
      71               0 :         $errorCount = count($EZSQL_ERROR);                                                                                                                                                                                                                                              
      72               0 :         $moderator = (int)$newModerator;                                                                                                                                                                                                                                                
      73                 :                                                                                                                                                                                                                                                                                         
      74               0 :         $sql = "UPDATE courses SET Type = 'ecom' WHERE ID = '$courseID'";                                                                                                                                                                                                               
      75               0 :         $db->query($sql);                                                                                                                                                                                                                                                               
      76                 :                                                                                                                                                                                                                                                                                         
      77               0 :         $sql = "SELECT ID FROM coursetree WHERE parentID = 0 AND courseID = 0 AND type = 'node_ecom'";                                                                                                                                                                                  
      78               0 :         $ecomFolder = (int)$db->get_var($sql);                                                                                                                                                                                                                                          
      79                 :                                                                                                                                                                                                                                                                                         
      80               0 :         $sql = "UPDATE coursetree ";                                                                                                                                                                                                                                                    
      81               0 :         $sql .= "SET type = 'leaf_ecom',";                                                                                                                                                                                                                                              
      82               0 :         $sql .= " parentID = '$ecomFolder'";                                                                                                                                                                                                                                            
      83               0 :         $sql .= " WHERE courseID = '$courseID'";                                                                                                                                                                                                                                        
      84               0 :         $db->query($sql);                                                                                                                                                                                                                                                               
      85                 :                                                                                                                                                                                                                                                                                         
      86               0 :         $sql = "INSERT INTO ecommunities (courseID, daysOfInactivity, warningSent, moderator_userID, verifyCode) ";                                                                                                                                                                     
      87               0 :         $sql .= "VALUES ('$courseID', '', '', '$moderator', '')";                                                                                                                                                                                                                       
      88               0 :         $db->query($sql);                                                                                                                                                                                                                                                               
      89                 :                                                                                                                                                                                                                                                                                         
      90               0 :         return count($EZSQL_ERROR) <= $errorCount;                                                                                                                                                                                                                                      
      91                 :     }                                                                                                                                                                                                                                                                                   
      92                 :                                                                                                                                                                                                                                                                                         
      93                 :     /**                                                                                                                                                                                                                                                                                 
      94                 :      * Legt eine Veranstaltung in der Datenbank an.                                                                                                                                                                                                                                     
      95                 :      * Hierbei werden nur die Pflichtfelder (ID, Name, Semester, DozentID)                                                                                                                                                                                                              
      96                 :      * mit Werten gefuellt.                                                                                                                                                                                                                                                             
      97                 :      *                                                                                                                                                                                                                                                                                  
      98                 :      * @access protected                                                                                                                                                                                                                                                                
      99                 :      * @static                                                                                                                                                                                                                                                                          
     100                 :      * @param string $name           - Name der Veranstaltung                                                                                                                                                                                                                           
     101                 :      * @param string $shortName      - Kurzname der Veranstaltung                                                                                                                                                                                                                       
     102                 :      * @param string $modulShortCut  - Modulkürzel der Veranstaltung                                                                                                                                                                                                                   
     103                 :      * @param integer $dozentID      - ID des Dozenten                                                                                                                                                                                                                                  
     104                 :      * @param integer $mni           - Gibt an, ob sich um eine MNI-Veranstaltung handelt                                                                                                                                                                                               
     105                 :      * @return integer - ID der angelegten Veranstaltung                                                                                                                                                                                                                                
     106                 :      *         string  - Fehlerbeschreibung, falls Veranstaltung nicht erzeugt werden konnte                                                                                                                                                                                            
     107                 :      */                                                                                                                                                                                                                                                                                 
     108                 :     function createCourse($name, $shortName, $modulShortCut, $dozentID, $mni=false) {                                                                                                                                                                                                   
     109               0 :         global $db, $EZSQL_ERROR;                                                                                                                                                                                                                                                       
     110                 :                                                                                                                                                                                                                                                                                         
     111                 :         // OpenDate wird auf aktuellen Tag gesetzt, CloseDate auf 90 Tage später                                                                                                                                                                                                       
     112               0 :         $openDate = date("Y-m-d", time());                                                                                                                                                                                                                                              
     113               0 :         $closeDate = date("Y-m-d", time()+90*24*3600);                                                                                                                                                                                                                                  
     114                 :                                                                                                                                                                                                                                                                                         
     115                 :         // Default-Wert fuer eingebundene Modulgruppen festlegen.                                                                                                                                                                                                                       
     116               0 :         $modules = 0;                                                                                                                                                                                                                                                                   
     117               0 :         $boundInMods = $db->get_results("SELECT ID FROM modulegroups WHERE Choosable=0");                                                                                                                                                                                               
     118               0 :         if(is_array($boundInMods) && (count($boundInMods) > 0)) {                                                                                                                                                                                                                       
     119               0 :             foreach($boundInMods as $mod) {                                                                                                                                                                                                                                             
     120               0 :                 $modules = $modules | (int)pow(2, (int)$mod->ID - 2);                                                                                                                                                                                                                   
     121               0 :             }                                                                                                                                                                                                                                                                           
     122               0 :         }                                                                                                                                                                                                                                                                               
     123                 :                                                                                                                                                                                                                                                                                         
     124                 :         // Default-Wert fuer AssRights setzen.                                                                                                                                                                                                                                          
     125               0 :         $assMods = 0;                                                                                                                                                                                                                                                                   
     126                 :                                                                                                                                                                                                                                                                                         
     127                 :         // Default-Wert fuer maximale Teilnehmerzahl setzen.                                                                                                                                                                                                                            
     128               0 :         $maxStudents = 200;                                                                                                                                                                                                                                                             
     129                 :                                                                                                                                                                                                                                                                                         
     130                 :         // Veranstaltungsnamen ueberpruefen und formatieren.                                                                                                                                                                                                                            
     131               0 :         $nameError = Settings::validateName($name);                                                                                                                                                                                                                                     
     132               0 :         if($nameError != "") {                                                                                                                                                                                                                                                          
     133               0 :             return "Veranstaltung konnte nicht angelegt werden:<br />Fehlerhafter Veranstaltungsname (".$nameError.")";                                                                                                                                                                 
     134                 :         }                                                                                                                                                                                                                                                                               
     135               0 :         $name = Settings::formatName($name);                                                                                                                                                                                                                                            
     136                 :                                                                                                                                                                                                                                                                                         
     137                 :         // Kurznamen ueberpruefen und formatieren.                                                                                                                                                                                                                                      
     138               0 :         $shortNameError = Settings::validateShortname($shortName);                                                                                                                                                                                                                      
     139               0 :         if($shortNameError != "") {                                                                                                                                                                                                                                                     
     140               0 :             return "Veranstaltung konnte nicht angelegt werden:<br />Fehlerhafter Kurzname (".$shortNameError.")";                                                                                                                                                                      
     141                 :         }                                                                                                                                                                                                                                                                               
     142               0 :         $shortName = Settings::formatName($shortName);                                                                                                                                                                                                                                  
     143                 :                                                                                                                                                                                                                                                                                         
     144               0 :         if (empty($dozentID)) {                                                                                                                                                                                                                                                         
     145               0 :                     return "Veranstaltung konnte nicht angelegt werden:<br />Kein Dozent angegeben.";                                                                                                                                                                                   
     146                 :         }                                                                                                                                                                                                                                                                               
     147                 :                                                                                                                                                                                                                                                                                         
     148               0 :         if (empty($modulShortCut)) {                                                                                                                                                                                                                                                    
     149               0 :                     return "Veranstaltung konnte nicht angelegt werden:<br />Kein Modulk&uuml;rzel angegeben.";                                                                                                                                                                         
     150                 :         }                                                                                                                                                                                                                                                                               
     151                 :                                                                                                                                                                                                                                                                                         
     152                 :         //Falls es sich um einen MNI-Kurs handelt                                                                                                                                                                                                                                       
     153               0 :         if ($mni){                                                                                                                                                                                                                                                                      
     154                 :            // Falls das Modulkuerzel schon in einem offenen Kurs verwendet wird                                                                                                                                                                                                         
     155                 :            // !Geaendert: Der shortname ist nun frei editierbar vom Kursersteller                                                                                                                                                                                                       
     156                 :            /* if (EStudyCourse::is_mSC_used_in_open_course($modulShortCut)){                                                                                                                                                                                                            
     157                 :               //Dozentenkuerzel ermitteln                                                                                                                                                                                                                                               
     158                 :               $dozent = new User($dozentID);                                                                                                                                                                                                                                            
     159                 :               $dozent->getUserData();                                                                                                                                                                                                                                                   
     160                 :               $shortName = $modulShortCut."_".$dozent->userData['shortname'];                                                                                                                                                                                                           
     161                 :            }                                                                                                                                                                                                                                                                            
     162                 :            else                                                                                                                                                                                                                                                                         
     163                 :               $shortName = $modulShortCut; */                                                                                                                                                                                                                                           
     164                 :                                                                                                                                                                                                                                                                                         
     165                 :            //Eintragen der Modulkuerzel-ID als Fremdschluessel                                                                                                                                                                                                                          
     166               0 :            $mSC_ID = XmlImport::get_latest_ID_by_MSC($modulShortCut);                                                                                                                                                                                                                   
     167               0 :         }                                                                                                                                                                                                                                                                               
     168                 :                                                                                                                                                                                                                                                                                         
     169                 :                                                                                                                                                                                                                                                                                         
     170               0 :         if ( isset($_POST['semester']) ) {                                                                                                                                                                                                                                              
     171               0 :             $semesterColumn = ", Semester";                                                                                                                                                                                                                                             
     172               0 :             $semesterValue = ", '".self::semesterStringToDB($_POST['semester'])."'";                                                                                                                                                                                                    
     173               0 :         } else {                                                                                                                                                                                                                                                                        
     174               0 :             $semesterColumn = $semesterValue = "";                                                                                                                                                                                                                                      
     175                 :         }                                                                                                                                                                                                                                                                               
     176                 :                                                                                                                                                                                                                                                                                         
     177                 :         // pruefen, ob Veranstaltung schon existiert.                                                                                                                                                                                                                                   
     178                 :         //$courseExists = $db->get_var("SELECT ID FROM courses WHERE Name='".$name."' AND Semester='".$semester."' ");                                                                                                                                                                  
     179                 :         //if($courseExists) {                                                                                                                                                                                                                                                           
     180                 :         //    return "Veranstaltung existiert bereits";                                                                                                                                                                                                                                 
     181                 :         //}                                                                                                                                                                                                                                                                             
     182                 :                                                                                                                                                                                                                                                                                         
     183                 :         // ----- Insert-Anfrage konstruieren fuer Datenbanktabelle course und ausfuehren-----                                                                                                                                                                                           
     184                 :                                                                                                                                                                                                                                                                                         
     185               0 :         $createCourse = "INSERT INTO courses (";                                                                                                                                                                                                                                        
     186               0 :         $createCourse .= "Name, ";                                                                                                                                                                                                                                                      
     187               0 :         $createCourse .= "ShortName, ";                                                                                                                                                                                                                                                 
     188               0 :         $createCourse .= "modulShortCut, ";                                                                                                                                                                                                                                             
     189               0 :         $createCourse .= "OpenDate, ";                                                                                                                                                                                                                                                  
     190               0 :         $createCourse .= "CloseDate, ";                                                                                                                                                                                                                                                 
     191               0 :         $createCourse .= "Modules, ";                                                                                                                                                                                                                                                   
     192               0 :         $createCourse .= "AssRights, ";                                                                                                                                                                                                                                                 
     193               0 :         $createCourse .= "MaxStudents,";                                                                                                                                                                                                                                                
     194               0 :         $createCourse .= "Type ";                                                                                                                                                                                                                                                       
     195               0 :         $createCourse .= $semesterColumn.",";                                                                                                                                                                                                                                           
     196               0 :         $createCourse .= "modulbeschreibung_ID";                                                                                                                                                                                                                                        
     197               0 :         $createCourse .= ") ";                                                                                                                                                                                                                                                          
     198               0 :         $createCourse .= "VALUES (";                                                                                                                                                                                                                                                    
     199               0 :         $createCourse .= "'".$name."', ";                                                                                                                                                                                                                                               
     200               0 :         $createCourse .= "'".$shortName."', ";                                                                                                                                                                                                                                          
     201               0 :         $createCourse .= "'".$modulShortCut."', ";                                                                                                                                                                                                                                      
     202               0 :         $createCourse .= "'".$openDate."', ";                                                                                                                                                                                                                                           
     203               0 :         $createCourse .= "'".$closeDate."', ";                                                                                                                                                                                                                                          
     204               0 :         $createCourse .= "'".$modules."', ";                                                                                                                                                                                                                                            
     205               0 :         $createCourse .= "'".$assMods."', ";                                                                                                                                                                                                                                            
     206               0 :         $createCourse .= "'".$maxStudents."', ";                                                                                                                                                                                                                                        
     207               0 :         $createCourse .= "'course'";                                                                                                                                                                                                                                                    
     208               0 :         $createCourse .= $semesterValue.",";                                                                                                                                                                                                                                            
     209                 :         /* Bei einem MNI-Kurs wird die ID von der aktuellen Modulbeschreibung als Fremdschluessel gespeichert.                                                                                                                                                                          
     210                 :            Ansonsten wird "-1" in die DB eingetragen. */                                                                                                                                                                                                                                
     211                 :         if($mni)                                                                                                                                                                                                                                                                        
     212               0 :            $createCourse .= "'".$mSC_ID."'";                                                                                                                                                                                                                                            
     213                 :         else                                                                                                                                                                                                                                                                            
     214               0 :            $createCourse .= "'-1'";                                                                                                                                                                                                                                                     
     215               0 :         $createCourse .= ")";                                                                                                                                                                                                                                                           
     216                 :                                                                                                                                                                                                                                                                                         
     217               0 :         $errorCount = count($EZSQL_ERROR);                                                                                                                                                                                                                                              
     218               0 :         $db->query($createCourse);                                                                                                                                                                                                                                                      
     219               0 :         $nid = $db->insert_id;                                                                                                                                                                                                                                                          
     220               0 :         if(count($EZSQL_ERROR) > $errorCount) {                                                                                                                                                                                                                                         
     221               0 :             return "Fehler beim Eintrag in die Datenbank.";                                                                                                                                                                                                                             
     222                 :         }                                                                                                                                                                                                                                                                               
     223                 :                                                                                                                                                                                                                                                                                         
     224                 :         //----Automation-------------------------------------------------------                                                                                                                                                                                                         
     225                 :         /**zum Ausführen automatischer Funktionen*/                                                                                                                                                                                                                                    
     226               0 :         require_once(PATH_TO_ROOT."common/classes/class.automation.inc.php");                                                                                                                                                                                                           
     227                 :                                                                                                                                                                                                                                                                                         
     228                 :         //neues objekt erstellen und standard logfile benutzen                                                                                                                                                                                                                          
     229               0 :         $autoCreate = new Automation("");                                                                                                                                                                                                                                               
     230               0 :         $autoCreate->newCourse($nid);                                                                                                                                                                                                                                                   
     231                 :         //---------------------------------------------------------------------                                                                                                                                                                                                         
     232                 :                                                                                                                                                                                                                                                                                         
     233               0 :         $errorCount = count($EZSQL_ERROR);                                                                                                                                                                                                                                              
     234               0 :         $db->query("INSERT INTO user_course (userID, courseID, regtime) VALUES ('".$dozentID."', '".$nid."', ".time().")");                                                                                                                                                             
     235               0 :         if(count($EZSQL_ERROR) > $errorCount) {                                                                                                                                                                                                                                         
     236               0 :             return "Veranstaltung konnte nicht angelegt werden:<br />Fehler beim Eintrag in die Datenbank";                                                                                                                                                                             
     237                 :         }                                                                                                                                                                                                                                                                               
     238                 :                                                                                                                                                                                                                                                                                         
     239                 :         //----Automation-------------------------------------------------------                                                                                                                                                                                                         
     240                 :         /**zum Ausführen automatischer Funktionen*/                                                                                                                                                                                                                                    
     241               0 :         require_once(PATH_TO_ROOT."common/classes/class.automation.inc.php");                                                                                                                                                                                                           
     242                 :                                                                                                                                                                                                                                                                                         
     243                 :         //neues objekt erstellen und standart logfile benutzen                                                                                                                                                                                                                          
     244               0 :         $autoAddUser = new Automation("");                                                                                                                                                                                                                                              
     245               0 :         $autoAddUser->addUserToCourse($dozentID, $nid);                                                                                                                                                                                                                                 
     246                 :         //---------------------------------------------------------------------                                                                                                                                                                                                         
     247                 :                                                                                                                                                                                                                                                                                         
     248               0 :         return (int)$nid;                                                                                                                                                                                                                                                               
     249                 :   }                                                                                                                                                                                                                                                                                     
     250                 :                                                                                                                                                                                                                                                                                         
     251                 :                                                                                                                                                                                                                                                                                         
     252                 :     /**                                                                                                                                                                                                                                                                                 
     253                 :      * Loescht eine Veranstaltung.                                                                                                                                                                                                                                                      
     254                 :      * Es werden alle zu der Veranstaltung gehoerigen Daten aus den Tabellen                                                                                                                                                                                                            
     255                 :      * 'courses' , 'user_course' und 'assistents' geloescht.                                                                                                                                                                                                                            
     256                 :      *                                                                                                                                                                                                                                                                                  
     257                 :      * @access protected                                                                                                                                                                                                                                                                
     258                 :      * @static                                                                                                                                                                                                                                                                          
     259                 :      * @param integer $courseid - ID der Veranstaltung, die geloescht werden soll                                                                                                                                                                                                       
     260                 :      * @return bool true  - wenn alle zur Veranstaltung gespeicherten Daten geloescht wurden                                                                                                                                                                                            
     261                 :      *              false - wenn Fehler auftrat                                                                                                                                                                                                                                         
     262                 :      */                                                                                                                                                                                                                                                                                 
     263                 :     function deleteCourse($courseid) {                                                                                                                                                                                                                                                  
     264               0 :         global $db, $EZSQL_ERROR;                                                                                                                                                                                                                                                       
     265                 :                                                                                                                                                                                                                                                                                         
     266                 :         //----Automation-------------------------------------------------------                                                                                                                                                                                                         
     267                 :         /**zum Ausführen automatischer Funktionen*/                                                                                                                                                                                                                                    
     268               0 :         require_once(PATH_TO_ROOT."common/classes/class.automation.inc.php");                                                                                                                                                                                                           
     269                 :                                                                                                                                                                                                                                                                                         
     270                 :         //neues objekt erstellen und standart logfile benutzen                                                                                                                                                                                                                          
     271               0 :         $autoDelete = new Automation("");                                                                                                                                                                                                                                               
     272               0 :         $autoDelete->deleteCourse($courseid);                                                                                                                                                                                                                                           
     273                 :         //---------------------------------------------------------------------                                                                                                                                                                                                         
     274                 :                                                                                                                                                                                                                                                                                         
     275               0 :         $errorCount = count($EZSQL_ERROR);                                                                                                                                                                                                                                              
     276               0 :         $db->query("DELETE FROM assistents WHERE courseID=".$courseid);                                                                                                                                                                                                                 
     277               0 :         if (count($EZSQL_ERROR) > $errorCount) {                                                                                                                                                                                                                                        
     278               0 :             return false;                                                                                                                                                                                                                                                               
     279                 :         }                                                                                                                                                                                                                                                                               
     280                 :                                                                                                                                                                                                                                                                                         
     281               0 :         $errorCount = count($EZSQL_ERROR);                                                                                                                                                                                                                                              
     282               0 :         $db->query("DELETE FROM user_course WHERE courseID=".$courseid);                                                                                                                                                                                                                
     283               0 :         if (count($EZSQL_ERROR) > $errorCount) {                                                                                                                                                                                                                                        
     284               0 :             return false;                                                                                                                                                                                                                                                               
     285                 :         }                                                                                                                                                                                                                                                                               
     286                 :                                                                                                                                                                                                                                                                                         
     287               0 :         $errorCount = count($EZSQL_ERROR);                                                                                                                                                                                                                                              
     288               0 :         $db->query("DELETE FROM courses WHERE ID=".$courseid);                                                                                                                                                                                                                          
     289               0 :         if (count($EZSQL_ERROR) > $errorCount) {                                                                                                                                                                                                                                        
     290               0 :             return false;                                                                                                                                                                                                                                                               
     291                 :         }                                                                                                                                                                                                                                                                               
     292                 :                                                                                                                                                                                                                                                                                         
     293               0 :         $errorCount = count($EZSQL_ERROR);                                                                                                                                                                                                                                              
     294               0 :         $db->query("DELETE FROM coursetree WHERE courseID=".$courseid);                                                                                                                                                                                                                 
     295               0 :         if (count($EZSQL_ERROR) > $errorCount) {                                                                                                                                                                                                                                        
     296               0 :             return false;                                                                                                                                                                                                                                                               
     297                 :         }                                                                                                                                                                                                                                                                               
     298                 :                                                                                                                                                                                                                                                                                         
     299               0 :         return true;                                                                                                                                                                                                                                                                    
     300                 :     }                                                                                                                                                                                                                                                                                   
     301                 :                                                                                                                                                                                                                                                                                         
     302                 :     /**                                                                                                                                                                                                                                                                                 
     303                 :      * Archiviert eine Veranstaltung.                                                                                                                                                                                                                                                   
     304                 :      * Teilnehmerliste erstellen und unter Ressourcen ablegen.                                                                                                                                                                                                                          
     305                 :      * Letzte Mitteilung generieren und per Mail verschicken.                                                                                                                                                                                                                           
     306                 :      * Alle Teilnehmer außer Dozenten und Tutoren ausschließen.                                                                                                                                                                                                                       
     307                 :      * Kurs schließen.                                                                                                                                                                                                                                                                 
     308                 :      *                                                                                                                                                                                                                                                                                  
     309                 :      * @author Clemens Weiß <clemens.weiss@mni.fh-giessen.de>                                                                                                                                                                                                                          
     310                 :      * @access protected                                                                                                                                                                                                                                                                
     311                 :      * @static                                                                                                                                                                                                                                                                          
     312                 :      * @param integer $courseID - ID der Veranstaltung                                                                                                                                                                                                                                  
     313                 :      * @return bool Erfolgswert                                                                                                                                                                                                                                                         
     314                 :      */                                                                                                                                                                                                                                                                                 
     315                 :     function archiveCourse($courseID) {                                                                                                                                                                                                                                                 
     316               0 :         global $db, $settings;                                                                                                                                                                                                                                                          
     317               0 :         $courseID = intval($courseID);                                                                                                                                                                                                                                                  
     318               0 :         if ($courseID <= 0 || $db->get_var("SELECT closed FROM courses WHERE ID='$courseID'"))                                                                                                                                                                                          
     319               0 :             return false;                                                                                                                                                                                                                                                               
     320               0 :         $userID = $_SESSION["userid"];                                                                                                                                                                                                                                                  
     321               0 :         $courseName = $db->get_var("SELECT ShortName FROM courses WHERE ID=$courseID");                                                                                                                                                                                                 
     322                 :                                                                                                                                                                                                                                                                                         
     323                 :         // Teilnehmerlisten erstellen und speichern                                                                                                                                                                                                                                     
     324               0 :         require_once(PATH_TO_ROOT."user/classes/class.UserlistExportDialog2.inc.php");                                                                                                                                                                                                  
     325                 :         // Verzeichnis erstellen, wenn noch nicht vorhanden                                                                                                                                                                                                                             
     326               0 :         $dir = PATH_TO_ROOT.$settings["upload_path"]."filemanager/courseID/$courseID/";                                                                                                                                                                                                 
     327               0 :         if (!is_dir($dir)) Utilities::mkdir_r($dir);                                                                                                                                                                                                                                    
     328                 :         // Hauptordner "Kurs-Archiv <Datum Uhrzeit>" in Ressourcen erstellen                                                                                                                                                                                                            
     329               0 :         $db->query("INSERT INTO filelist (link, parent_object, userID, create_time, courseID, type, visible_type, student_write) "                                                                                                                                                      
     330               0 :                   ."VALUES ('Kurs-Archiv ".date("Y-m-d H:i", time())."', 0, $userID, ".time().", $courseID, 'folder', 1, 0)");                                                                                                                                                          
     331               0 :         $folderID = $db->insert_id;                                                                                                                                                                                                                                                     
     332               0 :         $ul = new UserlistExportDialog2(false, $courseID);                                                                                                                                                                                                                              
     333               0 :         $_POST[$ul->membergroupsFormName] = array(6, 7, 8); // Dozenten, Tutoren, Studenten                                                                                                                                                                                             
     334               0 :         for ($i = 1; $i <= 18; $i++)                                                                                                                                                                                                                                                    
     335               0 :             $_POST[$ul->outputfieldsFormName][] = $i; // zu speichernde Felder                                                                                                                                                                                                          
     336               0 :         $semester = Course::semesterDBtoString($db->get_var("SELECT Semester FROM courses WHERE ID=$courseID"));                                                                                                                                                                        
     337                 :         // HTML-Export                                                                                                                                                                                                                                                                  
     338               0 :         $file = $_SESSION['userid'].time().$courseID."1";                                                                                                                                                                                                                               
     339               0 :         if ($f = @fopen($dir.$file, "w")) {                                                                                                                                                                                                                                             
     340               0 :             if (!fwrite($f, $ul->export(UL_FORMAT_HTML)))                                                                                                                                                                                                                               
     341               0 :                 return false;                                                                                                                                                                                                                                                           
     342               0 :             fclose($f);                                                                                                                                                                                                                                                                 
     343               0 :         } else return false;                                                                                                                                                                                                                                                            
     344               0 :         $db->query("INSERT INTO filelist "                                                                                                                                                                                                                                              
     345                 :                   ."(name, link, orig_filename, extension, parent_object, userID, size, create_time, courseID, type, visible_type, student_write) VALUES "                                                                                                                              
     346               0 :                   ."('Mitgliederliste $semester HTML', '$file', 'Mitgliederliste.html', 'html', $folderID, $userID, ".filesize($dir.$file).", ".time().", $courseID, 'file', 1, 0)");                                                                                                   
     347                 :         // CSV-Export                                                                                                                                                                                                                                                                   
     348               0 :         $_POST[$ul->csvColDelimFormName] = ",";                                                                                                                                                                                                                                         
     349               0 :         $_POST[$ul->csvRowDelimFormName] = "\n";                                                                                                                                                                                                                                        
     350               0 :         $file = $_SESSION['userid'].time().$_SESSION['course']."2";                                                                                                                                                                                                                     
     351               0 :         if ($f = @fopen($dir.$file, "w")) {                                                                                                                                                                                                                                             
     352               0 :             if (!fwrite($f, $ul->export(UL_FORMAT_CSV)))                                                                                                                                                                                                                                
     353               0 :                 return false;                                                                                                                                                                                                                                                           
     354               0 :             fclose($f);                                                                                                                                                                                                                                                                 
     355               0 :         } else return false;                                                                                                                                                                                                                                                            
     356               0 :         $db->query("INSERT INTO filelist "                                                                                                                                                                                                                                              
     357                 :                   ."(name, link, orig_filename, extension, parent_object, userID, size, create_time, courseID, type, visible_type, student_write) VALUES "                                                                                                                              
     358               0 :                   ."('Mitgliederliste $semester CSV', '$file', 'Mitgliederliste.csv', 'csv', $folderID, $userID, ".filesize($dir.$file).", ".time().", $courseID, 'file', 1, 0)");                                                                                                      
     359               0 :         unset($_POST[$ul->outputfieldsFormName]);                                                                                                                                                                                                                                       
     360               0 :         unset($_POST[$ul->membergroupsFormName]);                                                                                                                                                                                                                                       
     361               0 :         unset($_POST[$ul->csvRowDelimFormName]);                                                                                                                                                                                                                                        
     362               0 :         unset($_POST[$ul->csvColDelimFormName]);                                                                                                                                                                                                                                        
     363                 :                                                                                                                                                                                                                                                                                         
     364                 :         //----Automation-------------------------------------------------------                                                                                                                                                                                                         
     365                 :         /**zum Ausführen automatischer Funktionen*/                                                                                                                                                                                                                                    
     366               0 :         require_once(PATH_TO_ROOT."common/classes/class.automation.inc.php");                                                                                                                                                                                                           
     367                 :                                                                                                                                                                                                                                                                                         
     368                 :         // neues Objekt erstellen und Standard-Logfile benutzen                                                                                                                                                                                                                         
     369               0 :         $auto = new Automation("");                                                                                                                                                                                                                                                     
     370               0 :         $auto->archiveCourse($courseID);                                                                                                                                                                                                                                                
     371                 :         //---------------------------------------------------------------------                                                                                                                                                                                                         
     372                 :                                                                                                                                                                                                                                                                                         
     373                 :         // Studenten ausschließen                                                                                                                                                                                                                                                      
     374               0 :         $users = Course::getParticipants($courseID, "student");                                                                                                                                                                                                                         
     375               0 :         foreach ($users as $user) {                                                                                                                                                                                                                                                     
     376               0 :             Course::removeParticipant($user->userid, $courseID);                                                                                                                                                                                                                        
     377               0 :         }                                                                                                                                                                                                                                                                               
     378                 :                                                                                                                                                                                                                                                                                         
     379                 :         // Kurs schließen                                                                                                                                                                                                                                                              
     380               0 :         $db->query("UPDATE courses SET closed=1 WHERE ID=$courseID");                                                                                                                                                                                                                   
     381               0 :         return true;                                                                                                                                                                                                                                                                    
     382                 :     }                                                                                                                                                                                                                                                                                   
     383                 :                                                                                                                                                                                                                                                                                         
     384                 :     /**                                                                                                                                                                                                                                                                                 
     385                 :      * Reaktiviert eine archivierte Veranstaltung.                                                                                                                                                                                                                                      
     386                 :      * Kurs wieder öffnen.                                                                                                                                                                                                                                                             
     387                 :      * Anmeldezeitraum auf 90 Tage ab jetzt einstellen.                                                                                                                                                                                                                                 
     388                 :      * Aktuelles Semester eintragen.                                                                                                                                                                                                                                                    
     389                 :      *                                                                                                                                                                                                                                                                                  
     390                 :      * @author Clemens Weiß <clemens.weiss@mni.fh-giessen.de>                                                                                                                                                                                                                          
     391                 :      * @access protected                                                                                                                                                                                                                                                                
     392                 :      * @static                                                                                                                                                                                                                                                                          
     393                 :      * @param integer $courseID - ID der Veranstaltung                                                                                                                                                                                                                                  
     394                 :      * @return bool Erfolgswert                                                                                                                                                                                                                                                         
     395                 :      */                                                                                                                                                                                                                                                                                 
     396                 :     function reactivateCourse($courseID) {                                                                                                                                                                                                                                              
     397               0 :         global $db;                                                                                                                                                                                                                                                                     
     398               0 :         if (!$db->get_var("SELECT closed FROM courses WHERE ID=$courseID"))                                                                                                                                                                                                             
     399               0 :             return false;                                                                                                                                                                                                                                                               
     400                 :                                                                                                                                                                                                                                                                                         
     401                 :         //----Automation-------------------------------------------------------                                                                                                                                                                                                         
     402                 :         /**zum Ausführen automatischer Funktionen*/                                                                                                                                                                                                                                    
     403               0 :         require_once(PATH_TO_ROOT."common/classes/class.automation.inc.php");                                                                                                                                                                                                           
     404                 :                                                                                                                                                                                                                                                                                         
     405                 :         // neues Objekt erstellen und Standard-Logfile benutzen                                                                                                                                                                                                                         
     406               0 :         $auto = new Automation("");                                                                                                                                                                                                                                                     
     407               0 :         $auto->reactivateCourse($courseID);                                                                                                                                                                                                                                             
     408                 :         //---------------------------------------------------------------------                                                                                                                                                                                                         
     409                 :                                                                                                                                                                                                                                                                                         
     410               0 :         $db->query("UPDATE courses "                                                                                                                                                                                                                                                    
     411                 :                   ."SET closed=0, "                                                                                                                                                                                                                                                     
     412               0 :                   ."OpenDate='".date("Y-m-d", time())."', "                                                                                                                                                                                                                             
     413               0 :                   ."CloseDate='".date("Y-m-d", time()+90*24*3600)."', "                                                                                                                                                                                                                 
     414               0 :                   ."Semester='".CourseUtil::getCurrentSemester()."' "                                                                                                                                                                                                                   
     415               0 :                   ."WHERE ID=$courseID");                                                                                                                                                                                                                                               
     416                 :         // die geänderten Werte müssen aus dem POST-Array entfernt werden, damit das Formular aktuell ist                                                                                                                                                                             
     417               0 :         unset($_POST["semester"]);                                                                                                                                                                                                                                                      
     418               0 :         unset($_POST["openDate_day"]);                                                                                                                                                                                                                                                  
     419               0 :         unset($_POST["openDate_month"]);                                                                                                                                                                                                                                                
     420               0 :         unset($_POST["openDate_year"]);                                                                                                                                                                                                                                                 
     421               0 :         unset($_POST["closeDate_day"]);                                                                                                                                                                                                                                                 
     422               0 :         unset($_POST["closeDate_month"]);                                                                                                                                                                                                                                               
     423               0 :         unset($_POST["closeDate_year"]);                                                                                                                                                                                                                                                
     424               0 :         return true;                                                                                                                                                                                                                                                                    
     425                 :     }                                                                                                                                                                                                                                                                                   
     426                 :                                                                                                                                                                                                                                                                                         
     427                 :     /**                                                                                                                                                                                                                                                                                 
     428                 :      * Fuegt einen Benutzer einer Veranstaltung hinzu.                                                                                                                                                                                                                                  
     429                 :      * @access protected                                                                                                                                                                                                                                                                
     430                 :      * @static                                                                                                                                                                                                                                                                          
     431                 :      * @param integer $userid             - ID des Benutzers                                                                                                                                                                                                                            
     432                 :      * @param integer $courseid           - ID der Veranstaltung                                                                                                                                                                                                                        
     433                 :      * @param integer $differentUsergroup - Benutzergruppe, die der hinzugefügte User im Kurs einnehmen soll, 0 für die Gruppe, mit der er registriert ist                                                                                                                            
     434                 :      * @return bool - true,  wenn Benutzer zu Veranstaltung hinzugefuegt                                                                                                                                                                                                                
     435                 :      *              - false, wenn Benutzer schon Teilnehmer ist oder Datenbankfehler auftrat                                                                                                                                                                                            
     436                 :      */                                                                                                                                                                                                                                                                                 
     437                 :     function addParticipant($userid, $courseid, $differentUsergroup = 0) {                                                                                                                                                                                                              
     438               0 :         global $db, $EZSQL_ERROR;                                                                                                                                                                                                                                                       
     439                 :                                                                                                                                                                                                                                                                                         
     440               0 :         $diffUsergroup = $db->get_var("SELECT differentUsergroup FROM user_course WHERE userID=$userid AND courseID=$courseid");                                                                                                                                                        
     441               0 :         if ($diffUsergroup === null) {                                                                                                                                                                                                                                                  
     442               0 :             $insertQ  = "INSERT INTO user_course (userID, courseID, regtime, differentUsergroup) ";                                                                                                                                                                                     
     443               0 :             $insertQ .= "VALUES (".$userid." , ".$courseid.", ".time().", $differentUsergroup)";                                                                                                                                                                                        
     444               0 :         } elseif ($diffUsergroup !== $differentUsergroup) {                                                                                                                                                                                                                             
     445               0 :             $insertQ  = "UPDATE user_course SET differentUsergroup=$differentUsergroup WHERE userID=$userid AND courseID=$courseid";                                                                                                                                                    
     446               0 :         } else {                                                                                                                                                                                                                                                                        
     447               0 :             return false;                                                                                                                                                                                                                                                               
     448                 :         }                                                                                                                                                                                                                                                                               
     449                 :                                                                                                                                                                                                                                                                                         
     450               0 :         $errorCount = count($EZSQL_ERROR);                                                                                                                                                                                                                                              
     451               0 :         $db->query($insertQ);                                                                                                                                                                                                                                                           
     452                 :                                                                                                                                                                                                                                                                                         
     453               0 :         if(count($EZSQL_ERROR) > $errorCount) {                                                                                                                                                                                                                                         
     454               0 :             return false;                                                                                                                                                                                                                                                               
     455                 :         }                                                                                                                                                                                                                                                                               
     456                 :         //----Automation-------------------------------------------------------                                                                                                                                                                                                         
     457               0 :         if ($diffUsergroup === null) {                                                                                                                                                                                                                                                  
     458                 :             /**zum Ausführen automatischer Funktionen*/                                                                                                                                                                                                                                
     459               0 :             require_once(PATH_TO_ROOT."common/classes/class.automation.inc.php");                                                                                                                                                                                                       
     460                 :                                                                                                                                                                                                                                                                                         
     461                 :             // neues Objekt erstellen und Standard-Logfile benutzen                                                                                                                                                                                                                     
     462               0 :             $autoAddUser = new Automation("");                                                                                                                                                                                                                                          
     463               0 :             $autoAddUser->addUserToCourse($userid, $courseid);                                                                                                                                                                                                                          
     464               0 :         } else {                                                                                                                                                                                                                                                                        
     465                 :             /**zum Ausführen automatischer Funktionen*/                                                                                                                                                                                                                                
     466               0 :             require_once(PATH_TO_ROOT."common/classes/class.automation.inc.php");                                                                                                                                                                                                       
     467                 :                                                                                                                                                                                                                                                                                         
     468                 :             // neues Objekt erstellen und Standard-Logfile benutzen                                                                                                                                                                                                                     
     469               0 :             $autoAddUser = new Automation("");                                                                                                                                                                                                                                          
     470               0 :             $autoAddUser->changeUserGroupInCourse($userid, $courseid, $diffUsergroup, $differentUsergroup);                                                                                                                                                                             
     471                 :         }                                                                                                                                                                                                                                                                               
     472                 :         //---------------------------------------------------------------------                                                                                                                                                                                                         
     473                 :                                                                                                                                                                                                                                                                                         
     474               0 :         return true;                                                                                                                                                                                                                                                                    
     475                 :     }                                                                                                                                                                                                                                                                                   
     476                 :                                                                                                                                                                                                                                                                                         
     477                 :     /**                                                                                                                                                                                                                                                                                 
     478                 :      * Liefert die zu einer Veranstaltung gehoerenden Teilnehmer.                                                                                                                                                                                                                       
     479                 :      *                                                                                                                                                                                                                                                                                  
     480                 :      * @access public                                                                                                                                                                                                                                                                   
     481                 :      * @static                                                                                                                                                                                                                                                                          
     482                 :      * @param integer $courseid - Id der Veranstaltung, deren Teilnehmer ermittelt werden sollen                                                                                                                                                                                        
     483                 :      * @param string  $roles    - Filter fuer die Auswahl der Veranstaltungsteilnehmer                                                                                                                                                                                                  
     484                 :      *                            moegliche Werte sind :                                                                                                                                                                                                                                
     485                 :      *                            'teacher'   - es werden nur die Dozenten der Veranst ausgew                                                                                                                                                                                           
     486                 :      *                            'assistent' - nur Tutoren                                                                                                                                                                                                                             
     487                 :      *                            'student'   - nur Studenten                                                                                                                                                                                                                           
     488                 :      *                            'wait'      - Benutzer, die auf der Warteliste fuer die                                                                                                                                                                                               
     489                 :      *                                          Veranstaltung stehen, aber noch keine                                                                                                                                                                                                   
     490                 :      *                                          Teilnehmer sind.                                                                                                                                                                                                                        
     491                 :      *                            'all'       - Zusammenfassung von 'teacher' , 'assistent'                                                                                                                                                                                             
     492                 :      *                                          und 'student'                                                                                                                                                                                                                           
     493                 :      * @param string  $orderBy  - DB-Tabellenspalte nach der sortiert werden soll.                                                                                                                                                                                                      
     494                 :      *                            Default-Wert ist "user.Nachname".                                                                                                                                                                                                                     
     495                 :      * @param string  $orderDir - Richtung, in die sortiert werden soll.                                                                                                                                                                                                                
     496                 :      *                            Default-Wert ist "DESC".                                                                                                                                                                                                                              
     497                 :      * @returns mixed integer 0 - falls Fehler auftrat (z.B. keine Teilnehmer vorhanden )                                                                                                                                                                                               
     498                 :      *                object[]  - Array mit Teilnehmerobjekten, die wie folgt aufgebaut sind:                                                                                                                                                                                           
     499                 :      *                            $participant->userid      // Userid des Teilnehmers                                                                                                                                                                                                   
     500                 :      *                            $participant->shortname   // Kurzname des Teilnehmers                                                                                                                                                                                                 
     501                 :      *                            $participant->firstname   // Vorname des Teilnehmers                                                                                                                                                                                                  
     502                 :      *                            $participant->lastname    // Nachname des Teilnehmers                                                                                                                                                                                                 
     503                 :      *                            $participant->email       // Email-Adresse des Teilnehmers                                                                                                                                                                                            
     504                 :      */                                                                                                                                                                                                                                                                                 
     505                 :     function getParticipants($courseid, $roles = "all", $orderBy = "user.Nachname", $orderDir = "ASC") {                                                                                                                                                                                
     506               0 :         global $db;                                                                                                                                                                                                                                                                     
     507                 :                                                                                                                                                                                                                                                                                         
     508                 :         switch($roles) {                                                                                                                                                                                                                                                                
     509               0 :             case "teacher" :                                                                                                                                                                                                                                                            
     510               0 :                 $pQ = "SELECT user.ID, user.Vorname, user.Nachname, user.ShortName, user.Email FROM user LEFT OUTER JOIN user_course ON user.ID=user_course.userID WHERE ((user.usergroup=3 AND differentUsergroup=0) OR differentUsergroup=3) AND user_course.courseID=".$courseid;    
     511               0 :                 break;                                                                                                                                                                                                                                                                  
     512               0 :             case "assistent" :                                                                                                                                                                                                                                                          
     513               0 :                 $pQ = "SELECT user.ID, user.Vorname, user.Nachname, user.ShortName, user.Email FROM user LEFT OUTER JOIN assistents ON user.ID=assistents.userID WHERE assistents.courseID=".$courseid;                                                                                 
     514               0 :                 break;                                                                                                                                                                                                                                                                  
     515               0 :             case "student" :                                                                                                                                                                                                                                                            
     516               0 :                 $assQ = "SELECT userID FROM assistents WHERE courseID=".$courseid;                                                                                                                                                                                                      
     517               0 :                 $ass = $db->get_col($assQ);                                                                                                                                                                                                                                             
     518               0 :                 $in = "";                                                                                                                                                                                                                                                               
     519               0 :                 if($db->num_rows) {                                                                                                                                                                                                                                                     
     520               0 :                     $in = " AND user.ID NOT IN (".implode(",", $ass).")";                                                                                                                                                                                                               
     521               0 :                 }                                                                                                                                                                                                                                                                       
     522               0 :                 $pQ = "SELECT user.ID, user.Vorname, user.Nachname, user.ShortName, user.Email FROM user LEFT OUTER JOIN user_course ON user.ID=user_course.userID WHERE ((user.Usergroup=2 AND differentUsergroup=0) OR differentUsergroup=2) AND user_course.courseID=".$courseid.$in;
     523               0 :                 break;                                                                                                                                                                                                                                                                  
     524               0 :             case "wait" :                                                                                                                                                                                                                                                               
     525               0 :                 $pQ = "SELECT user.ID, user.Vorname, user.Nachname, user.ShortName, user.Email FROM user LEFT OUTER JOIN user_course_wait ON user.ID=user_course_wait.userID WHERE user_course_wait.courseID=".$courseid;                                                               
     526               0 :                 break;                                                                                                                                                                                                                                                                  
     527               0 :             case "all" :                                                                                                                                                                                                                                                                
     528               0 :                 $pQ = "SELECT user.ID, user.Vorname, user.Nachname, user.ShortName, user.Email FROM user LEFT OUTER JOIN user_course ON user.ID=user_course.userID WHERE user_course.courseID=".$courseid;                                                                              
     529               0 :                 break;                                                                                                                                                                                                                                                                  
     530               0 :             default :                                                                                                                                                                                                                                                                   
     531               0 :                 return 0;                                                                                                                                                                                                                                                               
     532               0 :         }                                                                                                                                                                                                                                                                               
     533               0 :         $pQ .= " ORDER BY ".$orderBy." ".$orderDir;                                                                                                                                                                                                                                     
     534               0 :         $p = $db->get_results($pQ);                                                                                                                                                                                                                                                     
     535               0 :         $all = array();                                                                                                                                                                                                                                                                 
     536               0 :         if(is_array($p)) {                                                                                                                                                                                                                                                              
     537               0 :             foreach($p as $u) {                                                                                                                                                                                                                                                         
     538               0 :                 $all[] = new Participant($u->ID,$u->ShortName,$u->Vorname,$u->Nachname,$u->Email);                                                                                                                                                                                      
     539               0 :             }                                                                                                                                                                                                                                                                           
     540               0 :         }                                                                                                                                                                                                                                                                               
     541               0 :         return $all;                                                                                                                                                                                                                                                                    
     542                 :     }                                                                                                                                                                                                                                                                                   
     543                 :                                                                                                                                                                                                                                                                                         
     544                 :     function getPossibleAssistents($courseID) {                                                                                                                                                                                                                                         
     545               0 :         global $db;                                                                                                                                                                                                                                                                     
     546               0 :         $students = Course::getParticipants($courseID, "student");                                                                                                                                                                                                                      
     547               0 :         $all = array();                                                                                                                                                                                                                                                                 
     548               0 :         if(is_array($students))                                                                                                                                                                                                                                                         
     549               0 :             foreach($students as $s)                                                                                                                                                                                                                                                    
     550               0 :                 $all[] = $s;                                                                                                                                                                                                                                                            
     551                 :                                                                                                                                                                                                                                                                                         
     552               0 :         return $all;                                                                                                                                                                                                                                                                    
     553                 :     }                                                                                                                                                                                                                                                                                   
     554                 :                                                                                                                                                                                                                                                                                         
     555                 :     /**                                                                                                                                                                                                                                                                                 
     556                 :      * Gibt die Rolle zurueck, die Benutzer in einer Veranstaltung einnimmt.                                                                                                                                                                                                            
     557                 :      *                                                                                                                                                                                                                                                                                  
     558                 :      * @access public                                                                                                                                                                                                                                                                   
     559                 :      * @static                                                                                                                                                                                                                                                                          
     560                 :      * @param integer $userid   - Id des Benutzers.                                                                                                                                                                                                                                     
     561                 :      * @param integer $courseid - Id der Veranstaltung.                                                                                                                                                                                                                                 
     562                 :      * @return mixed string     - Rolle des Benutzers in der Veranstaltung                                                                                                                                                                                                              
     563                 :      *                            moegliche Werte sind :                                                                                                                                                                                                                                
     564                 :      *                           'teacher' ,                                                                                                                                                                                                                                            
     565                 :      *                           'assistent' ,                                                                                                                                                                                                                                          
     566                 :      *                           'student' ,                                                                                                                                                                                                                                            
     567                 :      *                           'wait'                                                                                                                                                                                                                                                 
     568                 :      *               integer 0 - falls ungueltige Parameter, oder sonstiger Fehler.                                                                                                                                                                                                     
     569                 :      */                                                                                                                                                                                                                                                                                 
     570                 :     function getRole($userid, $courseid) {                                                                                                                                                                                                                                              
     571               0 :         global $db;                                                                                                                                                                                                                                                                     
     572                 :                                                                                                                                                                                                                                                                                         
     573               0 :         $isParticipantQ = "SELECT userID FROM user_course WHERE userID=".$userid." AND courseID=".$courseid;                                                                                                                                                                            
     574               0 :         $isAssistentQ   = "SELECT userID FROM assistents WHERE userID=".$userid." AND courseID=".$courseid;                                                                                                                                                                             
     575               0 :         $isWaitingQ     = "SELECT userID FROM user_course_wait WHERE courseID=".$courseid." AND userID=".$userid;                                                                                                                                                                       
     576                 :                                                                                                                                                                                                                                                                                         
     577               0 :         if(!$db->get_var($isParticipantQ)) {                                                                                                                                                                                                                                            
     578               0 :             $isParticipant = 0;                                                                                                                                                                                                                                                         
     579               0 :         }  else {                                                                                                                                                                                                                                                                       
     580               0 :             $isParticipant = 1;                                                                                                                                                                                                                                                         
     581                 :         }                                                                                                                                                                                                                                                                               
     582               0 :         if(!$db->get_var($isWaitingQ)) {                                                                                                                                                                                                                                                
     583               0 :             $isWaiting = 0;                                                                                                                                                                                                                                                             
     584               0 :         } else {                                                                                                                                                                                                                                                                        
     585               0 :             $isWaiting = 1;                                                                                                                                                                                                                                                             
     586                 :         }                                                                                                                                                                                                                                                                               
     587               0 :         if($isParticipant) {                                                                                                                                                                                                                                                            
     588               0 :             $usergroupQ = "SELECT IF(differentUsergroup>0, differentUsergroup, Usergroup) AS Usergroup FROM user LEFT JOIN user_course ON ID=userID WHERE ID=$userid AND courseID=$courseid";                                                                                           
     589               0 :             $usergroup  = $db->get_var($usergroupQ);                                                                                                                                                                                                                                    
     590               0 :             if(!$usergroup) {                                                                                                                                                                                                                                                           
     591               0 :                 return 0;                                                                                                                                                                                                                                                               
     592                 :             }                                                                                                                                                                                                                                                                           
     593                 :             switch($usergroup) {                                                                                                                                                                                                                                                        
     594               0 :                 case 2 :                                                                                                                                                                                                                                                                
     595               0 :                     $isAssistent = $db->get_var($isAssistentQ);                                                                                                                                                                                                                         
     596               0 :                     if($isAssistent) {                                                                                                                                                                                                                                                  
     597               0 :                         return "assistent";                                                                                                                                                                                                                                             
     598                 :                     } else {                                                                                                                                                                                                                                                            
     599               0 :                         return "student";                                                                                                                                                                                                                                               
     600                 :                     }                                                                                                                                                                                                                                                                   
     601               0 :                 case 3 :                                                                                                                                                                                                                                                                
     602               0 :                     return "teacher";                                                                                                                                                                                                                                                   
     603               0 :                 case 4 :                                                                                                                                                                                                                                                                
     604               0 :                     return "assistent";                                                                                                                                                                                                                                                 
     605               0 :                 default :                                                                                                                                                                                                                                                               
     606               0 :                     return 0;                                                                                                                                                                                                                                                           
     607               0 :             }                                                                                                                                                                                                                                                                           
     608               0 :         } elseif($isWaiting) {                                                                                                                                                                                                                                                          
     609               0 :             return "wait";                                                                                                                                                                                                                                                              
     610                 :         } else {                                                                                                                                                                                                                                                                        
     611               0 :             return 0;                                                                                                                                                                                                                                                                   
     612                 :         } /*  */                                                                                                                                                                                                                                                                        
     613                 :     }                                                                                                                                                                                                                                                                                   
     614                 :                                                                                                                                                                                                                                                                                         
     615                 :     /**                                                                                                                                                                                                                                                                                 
     616                 :      * Verleiht einem Benutzer das Tutorenrecht in einer Veranstaltung.                                                                                                                                                                                                                 
     617                 :      * Studenten werden in die 'assistents'-Tabelle uebernommen. <br />                                                                                                                                                                                                                 
     618                 :      * Hilfsadministratoren werden zusaetzlich in die 'user_course'-Tabelle                                                                                                                                                                                                             
     619                 :      * uebernommen.                                                                                                                                                                                                                                                                     
     620                 :      *                                                                                                                                                                                                                                                                                  
     621                 :      * @access protected                                                                                                                                                                                                                                                                
     622                 :      * @static                                                                                                                                                                                                                                                                          
     623                 :      * @param integer $userid   - ID des Benutzers                                                                                                                                                                                                                                      
     624                 :      * @param integer $courseid - ID der Veranstaltung                                                                                                                                                                                                                                  
     625                 :      * @return bool - true,  wenn Tutorenrecht verliehen oder Benutzer                                                                                                                                                                                                                  
     626                 :      *                       bereits Tutor in der Veranstaltung ist                                                                                                                                                                                                                     
     627                 :      *              - false, wenn Datenbankfehler auftrat                                                                                                                                                                                                                               
     628                 :      */                                                                                                                                                                                                                                                                                 
     629                 :     function setAsAssistent($userid, $courseid) {                                                                                                                                                                                                                                       
     630               0 :         global $db, $EZSQL_ERROR;                                                                                                                                                                                                                                                       
     631                 :                                                                                                                                                                                                                                                                                         
     632               0 :         if($userid < 0) {                                                                                                                                                                                                                                                               
     633               0 :             return true;                                                                                                                                                                                                                                                                
     634                 :         }                                                                                                                                                                                                                                                                               
     635                 :                                                                                                                                                                                                                                                                                         
     636               0 :         if($db->get_var("SELECT Usergroup FROM user WHERE ID=".$userid) == 4) {                                                                                                                                                                                                         
     637               0 :             if(!Course::addParticipant($userid,$courseid)) {                                                                                                                                                                                                                            
     638               0 :                 return false;                                                                                                                                                                                                                                                           
     639                 :             }                                                                                                                                                                                                                                                                           
     640               0 :         }                                                                                                                                                                                                                                                                               
     641                 :                                                                                                                                                                                                                                                                                         
     642               0 :         if (Course::getRole($userid, $courseid) != "student") {                                                                                                                                                                                                                         
     643               0 :             return false;                                                                                                                                                                                                                                                               
     644                 :         }                                                                                                                                                                                                                                                                               
     645                 :                                                                                                                                                                                                                                                                                         
     646               0 :         $insertQ  = "INSERT INTO assistents (userID,courseID) ";                                                                                                                                                                                                                        
     647               0 :         $insertQ .= "VALUES ('".$userid."','".$courseid."')";                                                                                                                                                                                                                           
     648                 :                                                                                                                                                                                                                                                                                         
     649               0 :         $errorCount = count($EZSQL_ERROR);                                                                                                                                                                                                                                              
     650               0 :         $db->query($insertQ);                                                                                                                                                                                                                                                           
     651                 :                                                                                                                                                                                                                                                                                         
     652               0 :         if(count($EZSQL_ERROR) > $errorCount) {                                                                                                                                                                                                                                         
     653               0 :             return false;                                                                                                                                                                                                                                                               
     654                 :         }                                                                                                                                                                                                                                                                               
     655                 :                                                                                                                                                                                                                                                                                         
     656                 :         //----Automation-------------------------------------------------------                                                                                                                                                                                                         
     657                 :         /**zum Ausführen automatischer Funktionen*/                                                                                                                                                                                                                                    
     658               0 :         require_once(PATH_TO_ROOT."common/classes/class.automation.inc.php");                                                                                                                                                                                                           
     659                 :         //neues objekt erstellen und standart logfile benutzen                                                                                                                                                                                                                          
     660               0 :         $autoAddAssistentToCourse = new Automation("");                                                                                                                                                                                                                                 
     661               0 :         $autoAddAssistentToCourse->addAssistentToCourse((int)$userid ,(int)$courseid);                                                                                                                                                                                                  
     662                 :         //---------------------------------------------------------------------                                                                                                                                                                                                         
     663                 :                                                                                                                                                                                                                                                                                         
     664               0 :         return true;                                                                                                                                                                                                                                                                    
     665                 :     }                                                                                                                                                                                                                                                                                   
     666                 :                                                                                                                                                                                                                                                                                         
     667                 :     /**                                                                                                                                                                                                                                                                                 
     668                 :      * Entzieht einem Benutzer das Tutorenrecht in einer Veranstaltung.                                                                                                                                                                                                                 
     669                 :      * Falls der Benutzer der Benutzergruppe Hilfsadministrator angehoert,                                                                                                                                                                                                              
     670                 :      * wird er zusaetzlich aus der Veranstaltung entfernt.                                                                                                                                                                                                                              
     671                 :      *                                                                                                                                                                                                                                                                                  
     672                 :      * @access protected                                                                                                                                                                                                                                                                
     673                 :      * @static                                                                                                                                                                                                                                                                          
     674                 :      * @param integer $userid   - ID des Benutzers                                                                                                                                                                                                                                      
     675                 :      * @param integer $courseid - ID der Veranstaltung                                                                                                                                                                                                                                  
     676                 :      * @return bool - true,  wenn Tutorenrecht entzogen wurde                                                                                                                                                                                                                           
     677                 :      *                false, wenn Fehler auftrat                                                                                                                                                                                                                                        
     678                 :      */                                                                                                                                                                                                                                                                                 
     679                 :     function unsetAsAssistent($userid, $courseid) {                                                                                                                                                                                                                                     
     680               0 :         global $db, $EZSQL_ERROR;                                                                                                                                                                                                                                                       
     681                 :                                                                                                                                                                                                                                                                                         
     682               0 :         if(Course::getRole($userid, $courseid) != "assistent") {                                                                                                                                                                                                                        
     683               0 :             return false;                                                                                                                                                                                                                                                               
     684                 :         }                                                                                                                                                                                                                                                                               
     685                 :                                                                                                                                                                                                                                                                                         
     686               0 :         if($db->get_var("SELECT Usergroup FROM user WHERE ID=".$userid) == 4) {                                                                                                                                                                                                         
     687               0 :             if(!Course::removeParticipant($userid,$courseid)) {                                                                                                                                                                                                                         
     688               0 :                 return false;                                                                                                                                                                                                                                                           
     689                 :             }                                                                                                                                                                                                                                                                           
     690               0 :         }                                                                                                                                                                                                                                                                               
     691                 :                                                                                                                                                                                                                                                                                         
     692               0 :         $insertQ  = "DELETE FROM assistents ";                                                                                                                                                                                                                                          
     693               0 :         $insertQ .= "WHERE userID='".$userid."' AND courseID='".$courseid."'";                                                                                                                                                                                                          
     694                 :                                                                                                                                                                                                                                                                                         
     695               0 :         $errorCount = count($EZSQL_ERROR);                                                                                                                                                                                                                                              
     696               0 :         $db->query($insertQ);                                                                                                                                                                                                                                                           
     697                 :                                                                                                                                                                                                                                                                                         
     698               0 :         if(count($EZSQL_ERROR) > $errorCount) {                                                                                                                                                                                                                                         
     699               0 :             return false;                                                                                                                                                                                                                                                               
     700                 :         }                                                                                                                                                                                                                                                                               
     701                 :                                                                                                                                                                                                                                                                                         
     702                 :         //----Automation-------------------------------------------------------                                                                                                                                                                                                         
     703                 :         /**zum Ausführen automatischer Funktionen*/                                                                                                                                                                                                                                    
     704               0 :         require_once(PATH_TO_ROOT."common/classes/class.automation.inc.php");                                                                                                                                                                                                           
     705                 :         //neues objekt erstellen und standart logfile benutzen                                                                                                                                                                                                                          
     706               0 :         $autoDeleteAssistentFromCourse = new Automation("");                                                                                                                                                                                                                            
     707               0 :         $autoDeleteAssistentFromCourse->deleteAssistentFromCourse((int)$userid ,(int)$courseid);                                                                                                                                                                                        
     708                 :         //---------------------------------------------------------------------                                                                                                                                                                                                         
     709                 :                                                                                                                                                                                                                                                                                         
     710               0 :         return true;                                                                                                                                                                                                                                                                    
     711                 :     }                                                                                                                                                                                                                                                                                   
     712                 :                                                                                                                                                                                                                                                                                         
     713                 :     /**                                                                                                                                                                                                                                                                                 
     714                 :      * Entzieht einem Benutzer das Dozentenrecht in einer Veranstaltung.                                                                                                                                                                                                                
     715                 :      *                                                                                                                                                                                                                                                                                  
     716                 :      * @access protected                                                                                                                                                                                                                                                                
     717                 :      * @static                                                                                                                                                                                                                                                                          
     718                 :      * @param integer $userid   - ID des Benutzers                                                                                                                                                                                                                                      
     719                 :      * @param integer $courseid - ID der Veranstaltung                                                                                                                                                                                                                                  
     720                 :      * @return bool - true,  wenn Dozentenrecht entzogen wurde                                                                                                                                                                                                                          
     721                 :      *                false, wenn Fehler auftrat                                                                                                                                                                                                                                        
     722                 :      */                                                                                                                                                                                                                                                                                 
     723                 :     function unsetAsTeacher($userid, $courseid) {                                                                                                                                                                                                                                       
     724               0 :         global $db, $EZSQL_ERROR;                                                                                                                                                                                                                                                       
     725                 :                                                                                                                                                                                                                                                                                         
     726               0 :         if(Course::getRole($userid, $courseid) != "teacher") {                                                                                                                                                                                                                          
     727               0 :             return false;                                                                                                                                                                                                                                                               
     728                 :         }                                                                                                                                                                                                                                                                               
     729                 :                                                                                                                                                                                                                                                                                         
     730               0 :         if ($db->get_var("SELECT Usergroup FROM user WHERE ID='$userid'") != STUDENT) {                                                                                                                                                                                                 
     731               0 :             $differentUsergroup = STUDENT;                                                                                                                                                                                                                                              
     732               0 :         } else {                                                                                                                                                                                                                                                                        
     733               0 :             $differentUsergroup = 0;                                                                                                                                                                                                                                                    
     734                 :         }                                                                                                                                                                                                                                                                               
     735                 :                                                                                                                                                                                                                                                                                         
     736               0 :         $insertQ  = "UPDATE user_course SET differentUsergroup='$differentUsergroup' ";                                                                                                                                                                                                 
     737               0 :         $insertQ .= "WHERE userID='$userid' AND courseID='$courseid'";                                                                                                                                                                                                                  
     738                 :                                                                                                                                                                                                                                                                                         
     739               0 :         $errorCount = count($EZSQL_ERROR);                                                                                                                                                                                                                                              
     740               0 :         $db->query($insertQ);                                                                                                                                                                                                                                                           
     741                 :                                                                                                                                                                                                                                                                                         
     742               0 :         if(count($EZSQL_ERROR) > $errorCount) {                                                                                                                                                                                                                                         
     743               0 :             return false;                                                                                                                                                                                                                                                               
     744                 :         }                                                                                                                                                                                                                                                                               
     745                 :                                                                                                                                                                                                                                                                                         
     746                 :         //----Automation-------------------------------------------------------                                                                                                                                                                                                         
     747                 :         /**zum Ausführen automatischer Funktionen*/                                                                                                                                                                                                                                    
     748               0 :         require_once(PATH_TO_ROOT."common/classes/class.automation.inc.php");                                                                                                                                                                                                           
     749                 :         //neues objekt erstellen und standart logfile benutzen                                                                                                                                                                                                                          
     750               0 :         $autoDeleteAssistentFromCourse = new Automation("");                                                                                                                                                                                                                            
     751               0 :         $autoDeleteAssistentFromCourse->changeUserGroupInCourse($userid, $courseid, DOZENT, $differentUsergroup);                                                                                                                                                                       
     752                 :         //---------------------------------------------------------------------                                                                                                                                                                                                         
     753                 :                                                                                                                                                                                                                                                                                         
     754               0 :         return true;                                                                                                                                                                                                                                                                    
     755                 :     }                                                                                                                                                                                                                                                                                   
     756                 :                                                                                                                                                                                                                                                                                         
     757                 :     /**                                                                                                                                                                                                                                                                                 
     758                 :      * Entfernt einen Benutzer aus einer Veranstaltung.                                                                                                                                                                                                                                 
     759                 :      *                                                                                                                                                                                                                                                                                  
     760                 :      * @static                                                                                                                                                                                                                                                                          
     761                 :      * @access public                                                                                                                                                                                                                                                                   
     762                 :      * @param integer $userid   - ID des Benutzers                                                                                                                                                                                                                                      
     763                 :      * @param integer $courseid - ID der Veranstaltung                                                                                                                                                                                                                                  
     764                 :      * @return integer - 1, falls Teilnehmer aus Veranstaltung entfernt wurde                                                                                                                                                                                                           
     765                 :      *                   0, falls Teilnehmer nicht entfernt werden konnte.                                                                                                                                                                                                              
     766                 :      */                                                                                                                                                                                                                                                                                 
     767                 :     function removeParticipant($userid, $courseid) {                                                                                                                                                                                                                                    
     768                 :                                                                                                                                                                                                                                                                                         
     769                 :         //----Automation-------------------------------------------------------                                                                                                                                                                                                         
     770                 :         /**zum Ausführen automatischer Funktionen*/                                                                                                                                                                                                                                    
     771               0 :         require_once(PATH_TO_ROOT."common/classes/class.automation.inc.php");                                                                                                                                                                                                           
     772                 :                                                                                                                                                                                                                                                                                         
     773                 :         //neues objekt erstellen und standart logfile benutzen                                                                                                                                                                                                                          
     774               0 :         $autoDeleteUser = new Automation("");                                                                                                                                                                                                                                           
     775               0 :         $autoDeleteUser->deleteUserFromCourse($userid, $courseid);                                                                                                                                                                                                                      
     776                 :         //---------------------------------------------------------------------                                                                                                                                                                                                         
     777                 :                                                                                                                                                                                                                                                                                         
     778                 :         // Siehe CourseAutomation::deleteUserFromCourse()                                                                                                                                                                                                                               
     779                 :                                                                                                                                                                                                                                                                                         
     780               0 :         return true;                                                                                                                                                                                                                                                                    
     781                 :     }                                                                                                                                                                                                                                                                                   
     782                 :                                                                                                                                                                                                                                                                                         
     783                 :                                                                                                                                                                                                                                                                                         
     784                 :     /**                                                                                                                                                                                                                                                                                 
     785                 :      * Extrahiert Semester-Typ aus Semesterstring in Datenbankformat.                                                                                                                                                                                                                   
     786                 :      *                                                                                                                                                                                                                                                                                  
     787                 :      * @access public                                                                                                                                                                                                                                                                   
     788                 :      * @static                                                                                                                                                                                                                                                                          
     789                 :      * @param integer $semester - Semester in der Form "03WS"                                                                                                                                                                                                                           
     790                 :      * @return string - "WS" : falls Semester Wintersemester ist;                                                                                                                                                                                                                       
     791                 :      *                  "SS" : falls Semester Sommersemester ist.                                                                                                                                                                                                                       
     792                 :      */                                                                                                                                                                                                                                                                                 
     793                 :     function getSemesterType($semester) {                                                                                                                                                                                                                                               
     794               0 :         return substr($semester, 2);                                                                                                                                                                                                                                                    
     795                 :     }                                                                                                                                                                                                                                                                                   
     796                 :                                                                                                                                                                                                                                                                                         
     797                 :     /**                                                                                                                                                                                                                                                                                 
     798                 :      * Extrahiert das Jahr aus einem Semester.                                                                                                                                                                                                                                          
     799                 :      *                                                                                                                                                                                                                                                                                  
     800                 :      * @access public                                                                                                                                                                                                                                                                   
     801                 :      * @static                                                                                                                                                                                                                                                                          
     802                 :      * @param integer $semester - Semester in der Form "WS 03/04" oder "SS 04"                                                                                                                                                                                                          
     803                 :      * @return string - Jahr des Semesters.                                                                                                                                                                                                                                             
     804                 :      */                                                                                                                                                                                                                                                                                 
     805                 :     function getSemesterYear($semester) {                                                                                                                                                                                                                                               
     806               0 :         $semesterYear = substr($semester, 0, 2);                                                                                                                                                                                                                                        
     807               0 :         if(Course::getSemesterType($semester) == "WS") {                                                                                                                                                                                                                                
     808               0 :             $secondYear   = (int) substr($semesterYear, 1, 1);                                                                                                                                                                                                                          
     809               0 :             $secondYear++;                                                                                                                                                                                                                                                              
     810               0 :             $semesterYear = $semesterYear."/0".$secondYear;                                                                                                                                                                                                                             
     811               0 :         }                                                                                                                                                                                                                                                                               
     812               0 :         return $semesterYear;                                                                                                                                                                                                                                                           
     813                 :     }                                                                                                                                                                                                                                                                                   
     814                 :                                                                                                                                                                                                                                                                                         
     815                 :                                                                                                                                                                                                                                                                                         
     816                 :     /**                                                                                                                                                                                                                                                                                 
     817                 :      * Wandelt Semester im Datenbankformat in normales Format um.                                                                                                                                                                                                                       
     818                 :      *                                                                                                                                                                                                                                                                                  
     819                 :      * @access public                                                                                                                                                                                                                                                                   
     820                 :      * @static                                                                                                                                                                                                                                                                          
     821                 :      * @param string $semester - Semester im Datenbankformat (Bsp.: "03WS")                                                                                                                                                                                                             
     822                 :      * @return string - Semester in der Form "WS 03/04" bzw. "SS 04"                                                                                                                                                                                                                    
     823                 :      */                                                                                                                                                                                                                                                                                 
     824                 :     function semesterDBtoString($semester) {                                                                                                                                                                                                                                            
     825               0 :         $semesterType = substr($semester, 2);                                                                                                                                                                                                                                           
     826               0 :         $semesterYear = substr($semester, 0, 2);                                                                                                                                                                                                                                        
     827               0 :         if($semesterType === "WS") {                                                                                                                                                                                                                                                    
     828               0 :             $singleDigit = false;                                                                                                                                                                                                                                                       
     829               0 :             if(substr($semesterYear, 0, 1) === "0") {                                                                                                                                                                                                                                   
     830               0 :                 $singleDigit = true;                                                                                                                                                                                                                                                    
     831               0 :                 $year2 = ((int) substr($semesterYear, 1)) + 1;                                                                                                                                                                                                                          
     832               0 :                 if($year2 > 9) {                                                                                                                                                                                                                                                        
     833               0 :                     $singleDigit = false;                                                                                                                                                                                                                                               
     834               0 :                 }                                                                                                                                                                                                                                                                       
     835               0 :             }                                                                                                                                                                                                                                                                           
     836               0 :             $semesterYear = $semesterYear."/";                                                                                                                                                                                                                                          
     837               0 :             if($singleDigit === true) {                                                                                                                                                                                                                                                 
     838               0 :                 $semesterYear = $semesterYear."0";                                                                                                                                                                                                                                      
     839               0 :             }                                                                                                                                                                                                                                                                           
     840               0 :             $semesterYear = $semesterYear.$year2;                                                                                                                                                                                                                                       
     841               0 :         }                                                                                                                                                                                                                                                                               
     842               0 :         return $semesterType." ".$semesterYear;                                                                                                                                                                                                                                         
     843                 :     }                                                                                                                                                                                                                                                                                   
     844                 :                                                                                                                                                                                                                                                                                         
     845                 :     /**                                                                                                                                                                                                                                                                                 
     846                 :      * Wandelt Semester in normalem Format in Datenbankformat um.                                                                                                                                                                                                                       
     847                 :      *                                                                                                                                                                                                                                                                                  
     848                 :      * @access public                                                                                                                                                                                                                                                                   
     849                 :      * @static                                                                                                                                                                                                                                                                          
     850                 :      * @param string $semester - Semester in der Form "WS 03/04" bzw. "SS 04"                                                                                                                                                                                                           
     851                 :      * @return string - Semester in Datenbankformat z.B. "03WS" , "03SS"                                                                                                                                                                                                                
     852                 :      */                                                                                                                                                                                                                                                                                 
     853                 :     function semesterStringToDB($semester) {                                                                                                                                                                                                                                            
     854               0 :         $year = substr($semester, 3, 2);                                                                                                                                                                                                                                                
     855               0 :         $type = substr($semester, 0, 2);                                                                                                                                                                                                                                                
     856               0 :         return $year.$type;                                                                                                                                                                                                                                                             
     857                 :     }                                                                                                                                                                                                                                                                                   
     858                 :                                                                                                                                                                                                                                                                                         
     859                 :     public static function getCheckOutNotice( $id ) {                                                                                                                                                                                                                                   
     860               0 :         global $db;                                                                                                                                                                                                                                                                     
     861                 :                                                                                                                                                                                                                                                                                         
     862               0 :         $courseId = Data::toMysql( $id, false );                                                                                                                                                                                                                                        
     863               0 :         $sql = "SELECT CheckOutNotice FROM courses WHERE ID = '$courseId'";                                                                                                                                                                                                             
     864               0 :         return $db->get_var( $sql );                                                                                                                                                                                                                                                    
     865                 :     }                                                                                                                                                                                                                                                                                   
     866                 :                                                                                                                                                                                                                                                                                         
     867                 :     public static function setCheckOutNotice( $value ) {                                                                                                                                                                                                                                
     868               0 :         global $db;                                                                                                                                                                                                                                                                     
     869                 :                                                                                                                                                                                                                                                                                         
     870               0 :         $courseId = Data::toMysql( $_SESSION['course'], false );                                                                                                                                                                                                                        
     871               0 :         $value = Data::toMysql( $value, false );                                                                                                                                                                                                                                        
     872               0 :         $sql = "UPDATE courses SET CheckOutNotice = '$value' WHERE ID = '$courseId'";                                                                                                                                                                                                   
     873               0 :         $db->query( $sql );                                                                                                                                                                                                                                                             
     874               0 :     }                                                                                                                                                                                                                                                                                   
     875                 : }                                                                                                                                                                                                                                                                                       
     876                 : ?>                                                                                                                                                                                                                                                                                      

Generated by PHPUnit 3.2.21 and Xdebug 2.0.4 at Sat Nov 7 22:04:08 CET 2009.